/*  ----------------------------------------------------------------------------
 *  Arello Mobile
 *  Fast 3d Engine
 *  ----------------------------------------------------------------------------
 * Except where otherwise noted, this work is licensed under
 * http://creativecommons.org/licenses/by/3.0
 */
#pragma once

#include <Config.h>
#include <list>

namespace liba
{
namespace animate
{

class Soul
{
	bool active_soul;
public:
	class Creator
	{
	public:
		Creator();
        ~Creator();
        void LifeCycle(time_float delta_time);

		static void disable_registration();
		static void enable_registration();
	};

	Soul();
	Soul(const Soul & other);
	virtual ~Soul();
	virtual void LifeCycle(time_float delta_time)=0;

	//method to disable soul notifications
	void activate_soul(bool activate);

	bool is_active_soul()const
	{
		return active_soul;
	}
	
	void mark_as_dead();
};

} // namespace animate
} // namespace liba
using namespace liba;